home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml.xsdl19990506;
-
- import com.extensibility.util.Debug;
- import com.extensibility.xml.AttributeDeclaration;
- import com.extensibility.xml.AttributeGroupMember;
- import com.extensibility.xml.BaseDeclaration;
- import com.extensibility.xml.Comment;
- import com.extensibility.xml.ContentModel;
- import com.extensibility.xml.ContentModelTerm;
- import com.extensibility.xml.DTDUtilities;
- import com.extensibility.xml.ElementDeclaration;
- import com.extensibility.xml.ExternalGEDeclaration;
- import com.extensibility.xml.ExternalPEDeclaration;
- import com.extensibility.xml.InternalGEDeclaration;
- import com.extensibility.xml.InternalPEDeclaration;
- import com.extensibility.xml.NamespaceDeclaration;
- import com.extensibility.xml.NotationDeclaration;
- import com.extensibility.xml.ParserException;
- import com.extensibility.xml.ProcessingInstruction;
- import com.extensibility.xml.SchemaIntf;
- import com.extensibility.xml.SchemaUtilities;
- import com.extensibility.xml.TypeRef;
- import com.extensibility.xml.URI;
- import com.extensibility.xml.dt.DataType;
- import com.extensibility.xml.dt.DataTypeFactory;
- import com.extensibility.xml.dt.DataTypeIntf;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.Reader;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.net.UnknownHostException;
- import java.util.Hashtable;
- import java.util.Stack;
- import java.util.Vector;
- import org.xml.sax.AttributeList;
- import org.xml.sax.HandlerBase;
- import org.xml.sax.InputSource;
- import org.xml.sax.Locator;
- import org.xml.sax.Parser;
- import org.xml.sax.SAXException;
- import org.xml.sax.SAXParseException;
- import org.xml.sax.helpers.LocatorImpl;
-
- public final class XSDLReader extends HandlerBase {
- static final String TOPLEVEL_ELEMTYPE = "elementType";
- static final String TOPLEVEL_ATTRTYPE = "attrDecl";
- static final String TOPLEVEL_IMPORT = "import";
- static final String TOPLEVEL_DATATYPE = "datatype";
- static final String TOPLEVEL_INCLUDE = "include";
- static final String TOPLEVEL_MODELGROUP = "modelGroup";
- static final String TOPLEVEL_ATTRGROUP = "attrGroup";
- static final String TOPLEVEL_IGETYPE = "textEntity";
- static final String TOPLEVEL_NOTATION = "notation";
- static final String TOPLEVEL_UNPARSEDENTITY = "unparsedEntity";
- static final String TOPLEVEL_EXTERNALENTITY = "externalEntity";
- static final String TAG_ELEMENT = "elementTypeRef";
- static final String TAG_COMMENT = "comment";
- static final String TAG_CM = "model";
- static final String TAG_CM_SEQ = "sequence";
- static final String TAG_CM_CHOICE = "choice";
- static final String TAG_CM_EMPTY = "empty";
- static final String TAG_CM_ANY = "any";
- static final String TAG_CM_MIXED = "mixed";
- static final String TAG_CM_PCDATA = "string";
- static final String TAG_ATTR_ENUMERATION = "enumeration";
- static final String TAG_ATTR_OPTION = "literal";
- static final String TAG_ATTR_REQUIRED = "required";
- static final String TAG_ATTR_FIXED = "fixed";
- static final String TAG_ATTR_DEFAULT = "default";
- static final String TAG_NS_PREFIX = "schemaAbbrev";
- static final String TAG_NS_URI = "schemaName";
- static final String TAG_DATATYPE = "datatypeRef";
- static final String TAG_MODELGROUPREF = "modelGroupRef";
- static final String TAG_ATTRGROUPREF = "attrGroupRef";
- private Hashtable elemDecls;
- private Hashtable currentAttrs;
- private ElementDeclaration currentElemDecl;
- private AttributeDeclaration currentAttrDecl;
- private Vector attrChoices;
- private Vector elemDeclAttrs;
- private Hashtable namespaces;
- private SchemaIntf schema;
- private ContentModel currentCM;
- private boolean isFirstLevelCM;
- private boolean cmClosed;
- private Stack cmConnectors;
- private Stack contentModels;
- private Object commentKind;
- private String commentContent;
- private boolean commentStart;
- private boolean optionStart;
- private boolean defaultStart;
- private String defaultContent;
- private boolean fixedStart;
- private String fixedContent;
- private boolean igeStart;
- private String igeValue;
- private String igeName;
- private Stack currentContentIPEs;
- private Stack currentAttrIPEs;
- private InternalPEDeclaration currentIPEDecl;
- private Hashtable currentIPEs;
- private NotationDeclaration currentNotationDecl;
- private ExternalGEDeclaration currentXGEDecl;
- private Locator locator;
-
- public XSDLReader(SchemaIntf var1) {
- this.schema = var1;
- }
-
- public void error(String var1, int var2, int var3, int var4) {
- ParserException var5 = new ParserException(var2, var1);
- var5.setSource(String.valueOf(String.valueOf(String.valueOf(String.valueOf("See Line: ").concat(String.valueOf(var3))).concat(String.valueOf(" Column:"))).concat(String.valueOf(var4))).concat(String.valueOf(" in file.")));
- var5.setSourceLinePos(var3);
- this.schema.addError(var5);
- }
-
- public void error(SAXParseException var1) {
- this.error(((SAXException)var1).getMessage(), 240, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
-
- public void fatalError(SAXParseException var1) {
- this.error(var1);
- }
-
- public void setDocumentLocator(Locator var1) {
- this.locator = var1;
- }
-
- public void parse(URI var1) throws IOException {
- Reader var3 = null;
-
- try {
- Parser var2 = SchemaUtilities.getParser();
- this.setDocumentLocator(new LocatorImpl());
- var2.setEntityResolver(this);
- var2.setErrorHandler(this);
- var2.setDocumentHandler(this);
- var3 = var1.createReader();
- var2.parse(new InputSource(var3));
- } catch (IOException var15) {
- throw var15;
- } catch (Exception var16) {
- if (!(var16 instanceof IOException)) {
- }
- } finally {
- try {
- if (var3 != null) {
- var3.close();
- }
- } catch (IOException var14) {
- }
-
- }
-
- }
-
- public void startDocument() {
- this.elemDecls = new Hashtable();
- this.currentAttrs = new Hashtable();
- this.currentElemDecl = null;
- this.currentAttrDecl = null;
- this.attrChoices = new Vector();
- this.elemDeclAttrs = new Vector();
- this.namespaces = new Hashtable();
- this.isFirstLevelCM = true;
- this.cmClosed = true;
- this.cmConnectors = new Stack();
- this.contentModels = new Stack();
- this.commentKind = null;
- this.commentContent = null;
- this.commentStart = false;
- this.optionStart = false;
- this.fixedStart = false;
- this.defaultStart = false;
- this.fixedContent = null;
- this.defaultContent = null;
- this.igeStart = false;
- this.igeValue = null;
- this.igeName = null;
- this.currentContentIPEs = new Stack();
- this.currentAttrIPEs = new Stack();
- this.currentIPEs = new Hashtable();
- }
-
- public void endDocument() {
- }
-
- public void processingInstruction(String var1, String var2) throws SAXException {
- ProcessingInstruction var3 = new ProcessingInstruction(var1, var2);
- this.schema.insertDeclaration(var3, (BaseDeclaration)null);
- }
-
- private char getCurrentConnection() {
- return (Character)this.cmConnectors.peek();
- }
-
- private ContentModelTerm getCurrentParent() {
- return (ContentModelTerm)this.contentModels.peek();
- }
-
- public void startElement(String var1, AttributeList var2) {
- this.parseElement(var1, var2);
- }
-
- public void parseElement(String var1, AttributeList var2) {
- if (var1.equals("schema")) {
- String var3 = var2.getValue("name");
- String var4 = var2.getValue("version");
- String var5 = var2.getValue("xmlns");
- } else if (var1.equals("import")) {
- String var17 = var2.getValue("schemaAbbrev");
- if (var17 == null) {
- var17 = new String("");
- }
-
- String var32 = var2.getValue("schemaName");
- if (var32.indexOf("www.w3.org/1999/05/06-xmlschema-1") >= 0) {
- return;
- }
-
- NamespaceDeclaration var44 = new NamespaceDeclaration(var17, var32);
- this.schema.insertDeclaration(var44, (BaseDeclaration)null);
- this.namespaces.put(var32, var17);
- } else if (var1.equals("include")) {
- String var18 = var2.getValue("schemaName");
- URI var33;
- if (var18.startsWith("http://")) {
- try {
- var33 = new URI(new URL(var18));
- } catch (MalformedURLException var16) {
- Debug.assert(false, String.valueOf(var18).concat(String.valueOf(" is a malformed url")));
- var33 = new URI(new File(var18));
- }
- } else {
- var33 = new URI(new File(var18));
- }
-
- String var45 = DTDUtilities.makeValidName(var33.getShortName());
- if (this.schema.getNamedDeclaration(var45, Class.forName("com.extensibility.xml.ParameterEntityDeclaration")) != null) {
- Debug.assert(false, String.valueOf(String.valueOf("The name ").concat(String.valueOf(var45))).concat(String.valueOf(" already exists.")));
- return;
- }
-
- ExternalPEDeclaration var6 = new ExternalPEDeclaration(var45, (String)null, var33);
- this.schema.insertDeclaration(var6, (BaseDeclaration)null);
-
- try {
- int var7 = this.schema.insertSubset(var6);
- if (var7 > 0) {
- this.error(((BaseDeclaration)var6).getName(), 246, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- } catch (UnknownHostException var13) {
- this.error(var33.getFullName(), 245, this.locator.getLineNumber(), this.locator.getColumnNumber());
- } catch (FileNotFoundException var14) {
- this.error(var33.getShortName(), 244, this.locator.getLineNumber(), this.locator.getColumnNumber());
- } catch (IOException var15) {
- this.error(((Throwable)var15).getMessage(), 247, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- } else if (var1.equals("elementType")) {
- String var19 = var2.getValue("name");
- String var34 = var2.getValue("model");
- if (this.elemDecls.containsKey(var19)) {
- this.currentElemDecl = (ElementDeclaration)this.elemDecls.get(var19);
- } else {
- this.currentElemDecl = new ElementDeclaration(var19, 3);
- this.elemDecls.put(var19, this.currentElemDecl);
- }
-
- for(int var46 = 0; var46 < var2.getLength(); ++var46) {
- String var56 = var2.getName(var46);
- if (var56.indexOf(":") != -1) {
- String var65 = var2.getValue(var46);
- this.currentElemDecl.putMetaProp(var56, var65);
- }
- }
-
- this.currentCM = this.currentElemDecl.getContentModel();
- if (var34 != null && var34.equals("open")) {
- this.currentCM.setOpen(true);
- } else {
- this.currentCM.setOpen(false);
- }
-
- this.currentCM.setContentModel(6);
- this.cmClosed = false;
- this.isFirstLevelCM = true;
- this.cmConnectors.push(new Character(','));
- this.contentModels.push(this.currentCM.getRootGroup());
- } else if (var1.equals("attrDecl")) {
- String var20 = var2.getValue("name");
- String var35 = var2.getValue("required");
- DataType var47 = DataTypeFactory.createDataType(1);
- boolean var57 = false;
- if (var35 != null && var35.equals("true")) {
- var57 = true;
- }
-
- this.currentAttrDecl = new AttributeDeclaration(this.currentElemDecl, var20, var47, (Vector)null, var57, (String)null);
- this.currentAttrs.put(var20, this.currentAttrDecl);
- if (!this.currentAttrIPEs.isEmpty()) {
- ((InternalPEDeclaration)this.currentAttrIPEs.peek()).add(this.currentAttrDecl);
- } else if (this.currentElemDecl != null) {
- this.elemDeclAttrs.addElement(this.currentAttrDecl);
- }
-
- for(int var66 = 0; var66 < var2.getLength(); ++var66) {
- String var8 = var2.getName(var66);
- if (var8.indexOf(":") != -1) {
- String var9 = var2.getValue(var66);
- this.currentAttrDecl.putMetaProp(var8, var9);
- }
- }
- } else if (var1.equals("datatypeRef")) {
- DataType var21 = this.convertDataType(var2.getValue("name"));
- String var36 = var2.getValue("schemaAbbrev");
- String var48 = var2.getValue("schemaName");
- if (var48 != null) {
- if (!this.namespaces.containsKey(new URI((URI)null, var48))) {
- this.error(var48, 238, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- } else if (var36 != null && !this.namespaces.contains(var36)) {
- this.error(var36, 238, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
-
- if (this.currentAttrDecl != null) {
- this.currentAttrDecl.setDataType(var21);
- } else if (this.currentElemDecl != null) {
- this.currentCM.setContentModel(5);
- this.currentElemDecl.setDataType(var21);
- }
- } else if (var1.equals("enumeration")) {
- String var22 = var2.getValue("schemaAbbrev");
- if (var22 != null && !this.namespaces.contains(var22)) {
- this.error(var22, 238, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
-
- this.currentAttrDecl.setDataType(DataTypeFactory.createDataType(10));
- } else if (var1.equals("literal")) {
- this.optionStart = true;
- } else if (var1.equals("default")) {
- this.defaultContent = null;
- this.defaultStart = true;
- } else if (var1.equals("fixed")) {
- this.fixedContent = null;
- this.fixedStart = true;
- } else if (var1.equals("empty")) {
- this.currentCM.setContentModel(3);
- this.cmClosed = true;
- } else if (var1.equals("any")) {
- this.currentCM.setContentModel(2);
- this.cmClosed = true;
- } else if (!var1.equals("sequence") && !var1.equals("choice")) {
- if (var1.equals("mixed")) {
- this.currentCM.setContentModel(4);
- } else if (var1.equals("elementTypeRef")) {
- String var24 = var2.getValue("schemaAbbrev");
- String var38 = var2.getValue("schemaName");
- String var50 = var2.getValue("name");
- String var59 = var2.getValue("minOccur");
- String var67 = var2.getValue("maxOccur");
- char var72 = this.getOccurance(var59, var67);
- if (var24 != null) {
- if (!this.namespaces.contains(var24)) {
- this.error(String.valueOf(String.valueOf(var50).concat(String.valueOf(", "))).concat(String.valueOf(var24)), 242, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- } else if (!var50.equals("#PCDATA")) {
- if (this.elemDecls.containsKey(var50)) {
- ElementDeclaration var74 = (ElementDeclaration)this.elemDecls.get(var50);
- } else {
- ElementDeclaration var75 = new ElementDeclaration(var50, 3);
- this.elemDecls.put(var50, var75);
- }
- }
-
- char var10 = this.getCurrentConnection();
- ContentModelTerm var11 = this.getCurrentParent();
- String var12;
- if (var24 != null && var24.length() != 0) {
- var12 = String.valueOf(String.valueOf(var24).concat(String.valueOf(":"))).concat(String.valueOf(var50));
- } else {
- var12 = var50;
- }
-
- var11.addTerm(new ContentModelTerm(new TypeRef(var12), var72, var10));
- } else if (var1.equals("comment")) {
- this.commentStart = true;
- } else if (var1.equals("textEntity")) {
- this.igeName = var2.getValue("name");
- this.igeStart = true;
- } else if (var1.equals("notation")) {
- String var25 = var2.getValue("name");
- String var39 = var2.getValue("public");
- String var51 = var2.getValue("system");
- NotationDeclaration var60 = new NotationDeclaration(var25, var39, new URI((URI)null, var51));
- this.schema.insertDeclaration(var60, (BaseDeclaration)null);
- this.currentIPEDecl = null;
- this.currentNotationDecl = var60;
- this.currentXGEDecl = null;
- } else if (var1.equals("unparsedEntity")) {
- String var26 = var2.getValue("name");
- String var40 = var2.getValue("public");
- String var52 = var2.getValue("system");
- String var61 = var2.getValue("notation");
- ExternalGEDeclaration var68 = new ExternalGEDeclaration(var1, var40, new URI((URI)null, var52), var61);
- this.schema.insertDeclaration(var68, (BaseDeclaration)null);
- this.currentIPEDecl = null;
- this.currentNotationDecl = null;
- this.currentXGEDecl = var68;
- } else if (var1.equals("externalEntity")) {
- String var27 = var2.getValue("name");
- String var41 = var2.getValue("public");
- String var53 = var2.getValue("system");
- String var62 = var2.getValue("notation");
- ExternalGEDeclaration var69 = new ExternalGEDeclaration(var1, var41, new URI((URI)null, var53));
- this.schema.insertDeclaration(var69, (BaseDeclaration)null);
- this.currentIPEDecl = null;
- this.currentNotationDecl = null;
- this.currentXGEDecl = var69;
- } else if (var1.equals("modelGroup")) {
- String var28 = var2.getValue("name");
- this.currentIPEDecl = new InternalPEDeclaration(var28, Class.forName("com.extensibility.xml.ContentModelTerm"));
- this.currentContentIPEs.push(this.currentIPEDecl);
- this.currentIPEs.put(var28, this.currentIPEDecl);
- this.currentCM = this.currentIPEDecl.createContentModel();
- this.currentCM.setContentModel(6);
- this.cmClosed = false;
- this.isFirstLevelCM = true;
- this.cmConnectors.push(new Character(','));
- this.contentModels.push(this.currentCM.getRootGroup());
- } else if (var1.equals("attrGroup")) {
- String var29 = var2.getValue("name");
- this.currentIPEDecl = new InternalPEDeclaration(var29, Class.forName("com.extensibility.xml.AttributeGroup"));
- this.currentAttrIPEs.push(this.currentIPEDecl);
- this.currentIPEs.put(var29, this.currentIPEDecl);
- } else if (var1.equals("modelGroupRef")) {
- String var30 = var2.getValue("schemaAbbrev");
- String var42 = var2.getValue("schemaName");
- String var54 = var2.getValue("name");
- String var63 = var2.getValue("minOccur");
- String var70 = var2.getValue("maxOccur");
- char var73 = this.getOccurance(var63, var70);
- if (var30 != null) {
- if (!this.namespaces.contains(var30)) {
- this.error(String.valueOf(String.valueOf(var54).concat(String.valueOf(", "))).concat(String.valueOf(var30)), 248, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- } else if (this.currentIPEs.containsKey(var54)) {
- InternalPEDeclaration var76 = (InternalPEDeclaration)this.currentIPEs.get(var54);
- }
-
- char var77 = this.getCurrentConnection();
- ContentModelTerm var78 = this.getCurrentParent();
- String var79;
- if (var30 != null && var30.length() != 0) {
- var79 = String.valueOf(String.valueOf(String.valueOf("%").concat(String.valueOf(var30))).concat(String.valueOf(":"))).concat(String.valueOf(var54));
- } else {
- var79 = String.valueOf("%").concat(String.valueOf(var54));
- }
-
- var78.addTerm(new ContentModelTerm(new TypeRef(var79), var73, var77));
- } else if (var1.equals("attrGroupRef")) {
- String var31 = var2.getValue("name");
- String var43 = var2.getValue("schemaAbbrev");
- String var55 = var2.getValue("schemaName");
- if (var43 != null) {
- if (!this.namespaces.contains(var43)) {
- this.error(String.valueOf(String.valueOf(var31).concat(String.valueOf(", "))).concat(String.valueOf(var43)), 249, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- } else if (this.currentIPEs.containsKey(var31)) {
- InternalPEDeclaration var64 = (InternalPEDeclaration)this.currentIPEs.get(var31);
- if (!this.currentAttrIPEs.isEmpty()) {
- ((InternalPEDeclaration)this.currentAttrIPEs.peek()).add((AttributeGroupMember)var64);
- } else if (this.currentElemDecl != null) {
- this.currentElemDecl.add(var64.getAttributeGroup());
- }
- }
- } else {
- this.error(var1, 239, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- } else {
- char var23;
- if (var1.equals("sequence")) {
- var23 = ',';
- } else {
- var23 = '|';
- }
-
- if (this.isFirstLevelCM) {
- this.cmConnectors.pop();
- this.cmConnectors.push(new Character(var23));
- this.isFirstLevelCM = false;
- } else {
- String var37 = var2.getValue("minOccur");
- String var49 = var2.getValue("maxOccur");
- char var58 = this.getOccurance(var37, var49);
- ContentModelTerm var71 = new ContentModelTerm();
- var71.setOccurance(var58);
- var71.setConnection(this.getCurrentConnection());
- this.getCurrentParent().addTerm(var71);
- this.contentModels.push(var71);
- this.cmConnectors.push(new Character(var23));
- }
- }
-
- }
-
- public void endElement(String var1) {
- if (var1.equals("elementType")) {
- this.schema.insertDeclaration(this.currentElemDecl, (BaseDeclaration)null);
- this.currentElemDecl = null;
-
- for(int var2 = 0; var2 < this.elemDeclAttrs.size(); ++var2) {
- AttributeDeclaration var3 = (AttributeDeclaration)this.elemDeclAttrs.elementAt(var2);
- this.schema.insertDeclaration(var3, (BaseDeclaration)null);
- }
-
- this.elemDeclAttrs.removeAllElements();
- this.currentAttrs.clear();
- if (!this.contentModels.empty()) {
- this.contentModels.removeAllElements();
- }
-
- if (!this.cmConnectors.empty()) {
- this.cmConnectors.removeAllElements();
- }
-
- this.cmClosed = true;
- this.isFirstLevelCM = false;
- } else if (var1.equals("model")) {
- this.cmClosed = true;
- } else if (!var1.equals("sequence") && !var1.equals("choice")) {
- if (var1.equals("comment")) {
- this.commentStart = false;
- if (this.currentAttrDecl != null) {
- this.currentAttrDecl.addComment(new Comment(this.commentContent));
- } else if (this.currentElemDecl != null) {
- this.currentElemDecl.addComment(new Comment(this.commentContent));
- } else if (this.currentIPEDecl != null) {
- this.currentIPEDecl.addComment(new Comment(this.commentContent));
- } else if (this.currentNotationDecl != null) {
- this.currentNotationDecl.addComment(new Comment(this.commentContent));
- } else if (this.currentXGEDecl != null) {
- this.currentXGEDecl.addComment(new Comment(this.commentContent));
- } else {
- Debug.assert(false, "cannot add comment if it doesn't belong to any element declaration");
- }
-
- this.commentKind = null;
- this.commentContent = null;
- } else if (var1.equals("attrDecl")) {
- this.currentAttrDecl = null;
- this.attrChoices.removeAllElements();
- } else if (var1.equals("enumeration")) {
- Vector var5 = new Vector();
-
- for(int var8 = 0; var8 < this.attrChoices.size(); ++var8) {
- var5.addElement(this.attrChoices.elementAt(var8));
- }
-
- this.currentAttrDecl.setChoices(var5);
- } else if (var1.equals("literal")) {
- this.optionStart = false;
- } else if (var1.equals("fixed")) {
- this.currentAttrDecl.setDefault(this.fixedContent);
- this.fixedStart = false;
- } else if (var1.equals("default")) {
- this.currentAttrDecl.setDefault(this.defaultContent);
- this.defaultStart = false;
- } else if (var1.equals("textEntity")) {
- InternalGEDeclaration var6 = new InternalGEDeclaration(this.igeName, this.igeValue);
- this.schema.insertDeclaration(var6, (BaseDeclaration)null);
- this.igeStart = false;
- this.igeName = null;
- this.igeValue = null;
- } else if (var1.equals("modelGroup")) {
- InternalPEDeclaration var7 = (InternalPEDeclaration)this.currentContentIPEs.pop();
- var7.updateValue();
- this.schema.insertDeclaration(var7, (BaseDeclaration)null);
- if (!this.currentContentIPEs.isEmpty()) {
- this.currentIPEDecl = (InternalPEDeclaration)this.currentContentIPEs.peek();
- }
-
- if (!this.contentModels.empty()) {
- this.contentModels.removeAllElements();
- }
-
- if (!this.cmConnectors.empty()) {
- this.cmConnectors.removeAllElements();
- }
-
- this.cmClosed = true;
- this.isFirstLevelCM = false;
- } else if (var1.equals("attrGroup")) {
- this.schema.insertDeclaration((InternalPEDeclaration)this.currentAttrIPEs.pop(), (BaseDeclaration)null);
- }
- } else {
- if (this.cmConnectors.size() > 1) {
- this.cmConnectors.pop();
- }
-
- if (this.contentModels.size() > 1) {
- ContentModelTerm var4 = (ContentModelTerm)this.contentModels.pop();
- }
- }
-
- }
-
- public void characters(char[] var1, int var2, int var3) throws SAXException {
- if (this.commentStart) {
- this.commentContent = String.valueOf(var1, var2, var3);
- } else if (this.optionStart) {
- this.attrChoices.addElement(new String(String.valueOf(var1, var2, var3)));
- } else if (this.fixedStart) {
- this.fixedContent = String.valueOf(var1, var2, var3);
- } else if (this.defaultStart) {
- this.defaultContent = String.valueOf(var1, var2, var3);
- } else if (this.igeStart) {
- this.igeValue = String.valueOf(var1, var2, var3);
- } else {
- String var4 = new String(String.valueOf(var1, var2, var3).trim());
- if (var4.length() > 0) {
- this.error(var4, 239, this.locator.getLineNumber(), this.locator.getColumnNumber());
- }
- }
-
- }
-
- private DataType convertDataType(String var1) {
- String var2 = DataTypeIntf.STRING;
- if (var1 != null && var1.equals("binary")) {
- var2 = DataTypeIntf.BINHEX;
- }
-
- if (var1.equals("integer")) {
- var2 = DataTypeIntf.INT;
- } else if (var1.equals("decimal")) {
- var2 = DataTypeIntf.DECIMAL;
- } else if (var1.equals("real")) {
- var2 = DataTypeIntf.FLOAT;
- } else if (var1.equals("date")) {
- var2 = DataTypeIntf.DATE;
- } else if (var1.equals("time")) {
- var2 = DataTypeIntf.TIME;
- } else if (var1.equals("timePeriod")) {
- var2 = DataTypeIntf.INTERVAL;
- } else if (DataTypeFactory.isPrimitive(DataTypeFactory.createDataType(var1)) || var1.equals(DataTypeIntf.STRING) || var1.equals(DataTypeIntf.BOOLEAN) || var1.equals(DataTypeIntf.NUMBER) || var1.equals(DataTypeIntf.DATETIME) || var1.equals(DataTypeIntf.URI)) {
- var2 = var1;
- }
-
- return DataTypeFactory.createDataType(var2);
- }
-
- protected char getOccurance(Object var1, Object var2) {
- char var3 = '\u0000';
- var3 = '\u0000';
- if (var1 == null) {
- var1 = new String("1");
- }
-
- if (var2 == null) {
- var2 = new String("1");
- }
-
- if (((String)var1).equals("1") && ((String)var2).equals("1")) {
- var3 = '\u0000';
- } else if (((String)var1).equals("0") && ((String)var2).equals("1")) {
- var3 = '?';
- } else if (((String)var1).equals("0") && ((String)var2).equals("*")) {
- var3 = '*';
- } else if (((String)var1).equals("1") && ((String)var2).equals("*")) {
- var3 = '+';
- } else {
- Debug.assert(false, String.valueOf(String.valueOf(String.valueOf(String.valueOf("minOccur=").concat(String.valueOf((String)var1))).concat(String.valueOf(", maxOccur="))).concat(String.valueOf((String)var2))).concat(String.valueOf(" not implemented yet!")));
- }
-
- return var3;
- }
- }
-